Estimating dense pixel-by-pixel disparity maps from a pair of stereo-images is an active research topic since decades. A good review of current research in this field can be found in [1], [2] and [3] (see list of references below). One way to distinguish between the different approaches is to divide them into two categories, global and local methods. Local methods usually compare small patches in the left and right image to find the best match. Global approaches aim to find a globally optimal solution for the whole frame.
Almost all disparity estimation algorithms use some kind of post-processing to
                align disparity (depth) discontinuities to object borders        remove matching noise and mismatches        fill image areas with unmatched pixels        enforce temporal consistency        
One common approach is to use joint-bilateral filters. The idea is to calculate the filter-coefficients of a bilateral filter [4] scene-adaptively by using the color information of the original images and to apply the adaptive filter to the disparity maps.
While local methods usually compare small patches in the left and right image to find the best match, global approaches aim to find a globally optimal solution for the whole frame. Local correlation algorithms often produce noisy disparity maps with inaccurate aligned object borders, but offer the possibility to provide temporal consistency of the disparity maps. In contrast, global methods enable spatial smoothness and well aligned depth discontinuities at object borders, but they usually do not consider temporal consistency. As a result, generating virtual intermediate views from these disparity maps by applying Depth-Image Based Rendering (DIBR) to the original stereo-images often creates visually annoying disturbances and artifacts.